package AppSsl

import (
	"encoding/json"
	"fmt"
)

// GetDomainNameById 根据域名ID获取域名名称。
// 参数:
//
//	SecretId: 用于认证的密钥ID。
//	SecretKey: 用于认证的密钥。
//	DomainId: 域名的唯一标识符。
//
// 返回值:
//
//	成功时返回域名名称和nil错误。
//	如果发生错误，返回空字符串和错误对象。
func GetDomainNameById(SecretId, SecretKey, DomainId string) (string, error) {
	// 调用GetSSLInfoDomainInId函数获取JSON格式的域名信息。
	jsonData, err := GetSSLInfoDomainInId(SecretId, SecretKey, DomainId)
	if err != nil {
		return "", err
	}

	// 初始化一个空的map来存储解析后的JSON数据。
	var data map[string]interface{}

	// 将JSON数据解析到map中。
	err = json.Unmarshal([]byte(jsonData), &data)
	// 如果解析过程中发生错误，打印错误信息并返回空切片。
	if err != nil {
		fmt.Println("Error unmarshaling JSON:", err)
		return "", err
	}

	// 从解析后的数据中提取Certificates列表。
	Domain := data["Response"].(map[string]interface{})["Domain"].(string)
	if Domain == "" {
		return "", fmt.Errorf("domain is empty")
	}
	return Domain, nil
}
